Memory die layouts for failure protection in ssds

ABSTRACT

The present disclosure generally relates to storage devices comprising a memory device having a layout optimized for data failure protection. A storage device comprises a memory device having a first package and a second package disposed adjacent to the first package. The first package comprises an even number of memory die having a first storage capacity, and the second package comprises two memory die having a second storage capacity. A first half of the memory dies of the first package and a first memory die of the second package are coupled to a first channel. A second half of the memory dies of the first package and a second memory die of the second package are coupled to a second channel parallel to the first channel.

BACKGROUND OF THE DISCLOSURE Field of the Disclosure

Embodiments of the present disclosure generally relate to data storagedevices, such as solid state drives (SSDs).

Description of the Related Art

Many storage devices, such as SSDs, utilize both non-volatile memory andvolatile memory for storing various types of data. Non-volatile memorydevices may be used for storing host data while volatile memory devicesmay be utilized for storing cached data and/or recovery data. Both thenon-volatile memory devices and the volatile memory devices may compriseerror correction codes (ECC) for correcting small accumulated errors inthe stored data. When the primary ECC codeword correction capabilitiesare exceeded, the storage device may employ a secondary ECC layer.

However, utilizing both the primary ECC and the secondary ECC mayrequire a large number of memory dies spread over a large number ofchannels, making packaging of the storage device challenging andexpensive. Due to the large number of memory dies and channels, signalintegrity and bus speeds may be reduced, and the handling of the memorydies and channels may be difficult. These factors may result in therebuilding of data using both the primary ECC and the secondary ECC tobe complex and time-consuming, increasing the associated latencies ofthe storage device. As such, rebuilding using both the primary ECC andthe secondary ECC may be slow and labor-intensive on the device, causingthe failure protection of data to be inefficient.

Thus, there is a need in the art for a storage device having an improvedmemory device with optimized data failure protection capabilities.

SUMMARY OF THE DISCLOSURE

The present disclosure generally relates to storage devices comprising amemory device having a layout optimized for data failure protection. Astorage device comprises a memory device having a first package and asecond package disposed adjacent to the first package. The first packagecomprises an even number of memory die having a first storage capacity,and the second package comprises two memory die having a second storagecapacity. A first half of the memory dies of the first package and afirst memory die of the second package are coupled to a first channel. Asecond half of the memory dies of the first package and a second memorydie of the second package are coupled to a second channel parallel tothe first channel.

In one embodiment, a storage device comprises a controller, a firstmemory device coupled to the controller, the first memory devicecomprising non-volatile memory, and a second memory device coupled tothe controller. The second memory device comprises a first packagecoupled to a first channel and a second channel parallel to the firstchannel. The first package comprises an even number of memory dieshaving a first storage capacity. The second memory device furthercomprises a second package coupled to the first channel and the secondchannel. The second package comprises two memory dies having a secondstorage capacity less than the first storage capacity. An equal numberof memory dies from the first package having the first storage capacityand an equal number of memory dies from the second package having thesecond storage capacity are disposed on both the first channel and thesecond channel.

In another embodiment, a storage device comprises a first controller, afirst memory device coupled to the first controller, the first memorydevice comprising non-volatile memory, and a second memory devicecoupled to the first controller. The second memory device comprises afirst package comprising an even number of first memory dies. A firsthalf of the first memory dies are disposed parallel to a second half ofthe first memory dies. The second memory device further comprises asecond package disposed adjacent to the first package. The secondpackage comprises a set of second memory dies. A first memory die of theset is disposed adjacent to a second memory die of the set. The secondmemory device further comprises a first channel coupled to the firsthalf of the first memory dies of the first package and to the firstmemory die of the set of the second package, and a second channeldisposed parallel to the first channel. The second channel is coupled tothe second half of the first memory dies of the first package and to thesecond memory die of the set of the second package.

In another embodiment, a storage device comprises a first memory devicecomprising a first package comprising an even number of first memorydies. A first half of the first memory dies are disposed parallel to asecond half of the first memory dies. The first memory device furthercomprises a second package disposed adjacent to the first package. Thesecond package comprises a set of second memory dies. A first memory dieof the set is disposed adjacent to a second memory die of the set. Thefirst memory device further comprises a first channel coupled to thefirst half of the first memory dies of the first package and to thefirst memory die of the set of the second package, and a second channeldisposed parallel to the first channel. The second channel is coupled tothe second half of the first memory dies of the first package and to thesecond memory die of the set of the second package. The first memorydevice further comprises a third package disposed adjacent to the firstpackage, the third package comprising an even number of third memorydies. A first half of the third memory dies are disposed parallel to asecond half of the third memory dies. The first memory device furthercomprises a fourth package disposed adjacent to the third package andthe second package, the fourth package comprising a set of fourth memorydies. A first memory die of the set is disposed adjacent to a secondmemory die of the set. The first memory device further comprises a thirdchannel disposed parallel to the first channel and the second channel,the third channel coupled to the first half of the third memory dies ofthe third package and to the first memory die of the set of the fourthpackage, and a fourth channel disposed parallel to the third channel,the fourth channel coupled to the second half of third memory dies ofthe third package and to the second memory die of the set of the fourthpackage.

BRIEF DESCRIPTION OF THE DRAWINGS

So that the manner in which the above recited features of the presentdisclosure can be understood in detail, a more particular description ofthe disclosure, briefly summarized above, may be had by reference toembodiments, some of which are illustrated in the appended drawings. Itis to be noted, however, that the appended drawings illustrate onlytypical embodiments of this disclosure and are therefore not to beconsidered limiting of its scope, for the disclosure may admit to otherequally effective embodiments.

FIG. 1 is a schematic block diagram illustrating a storage systemcomprising a storage device coupled to a host device, according to oneembodiment.

FIG. 2 illustrates an SCM for use in a storage device, according to oneembodiment.

FIG. 3 illustrates an SCM for use in a storage device, according toanother embodiment.

FIG. 4 illustrates the physical placements of data, codewords, andassociated parities in an SCM utilized for failure protection in astorage device, according to yet another embodiment.

FIG. 5 illustrates a method of recovering data from a failed memory die,according to one embodiment.

FIG. 6 illustrates a method of recovering data from a failed memory die,according to another embodiment.

FIG. 7 illustrates a method of recovering data from a failed memory die,according to yet another embodiment.

To facilitate understanding, identical reference numerals have beenused, where possible, to designate identical elements that are common tothe figures. It is contemplated that elements disclosed in oneembodiment may be beneficially utilized on other embodiments withoutspecific recitation.

DETAILED DESCRIPTION

In the following, reference is made to embodiments of the disclosure.However, it should be understood that the disclosure is not limited tospecific described embodiments. Instead, any combination of thefollowing features and elements, whether related to differentembodiments or not, is contemplated to implement and practice thedisclosure. Furthermore, although embodiments of the disclosure mayachieve advantages over other possible solutions and/or over the priorart, whether or not a particular advantage is achieved by a givenembodiment is not limiting of the disclosure. Thus, the followingaspects, features, embodiments and advantages are merely illustrativeand are not considered elements or limitations of the appended claimsexcept where explicitly recited in a claim(s). Likewise, reference to“the disclosure” shall not be construed as a generalization of anyinventive subject matter disclosed herein and shall not be considered tobe an element or limitation of the appended claims except whereexplicitly recited in a claim(s).

The present disclosure generally relates to storage devices comprising amemory device having a layout optimized for data failure protection. Astorage device comprises a memory device having a first package and asecond package disposed adjacent to the first package. The first packagecomprises an even number of memory die having a first storage capacity,and the second package comprises two memory die having a second storagecapacity. A first half of the memory dies of the first package and afirst memory die of the second package are coupled to a first channel. Asecond half of the memory dies of the first package and a second memorydie of the second package are coupled to a second channel parallel tothe first channel.

FIG. 1 is a schematic block diagram illustrating a storage system 100 inwhich storage device 106 may function as a storage device for a hostdevice 104, in accordance with one or more techniques of thisdisclosure. For instance, the host device 104 may utilize non-volatilememory devices 110 included in storage device 106 to store and retrievedata. In some examples, the storage system 100 may include a pluralityof storage devices, such as the storage device 106, which may operate asa storage array. For instance, the storage system 100 may include aplurality of storages devices 106 configured as a redundant array ofinexpensive/independent disks (RAID) that collectively function as amass storage device for the host device 104.

The storage system 100 includes a host device 104 which may store and/orretrieve data to and/or from one or more storage devices, such as thestorage device 106. As illustrated in FIG. 1, the host device 104 maycommunicate with the storage device 106 via a host interface 114. Thehost device 104 may comprise any of a wide range of devices, includingcomputer servers, network attached storage (NAS) units, desktopcomputers, notebook (i.e., laptop) computers, tablet computers, set-topboxes, telephone handsets such as so-called “smart” phones, so-called“smart” pads, televisions, cameras, display devices, digital mediaplayers, video gaming consoles, video streaming device, and the like.

As illustrated in FIG. 1, the storage device 106 includes a controller108, non-volatile memory (NVM) 110, volatile memory 112, a volatilememory controller 116, and a host interface 114. While shown in thestorage device 106, NVM 110 and volatile memory 112 are optionalcomponents, and may not be included in the storage device 106. Thestorage device 106 further includes a second memory device 122 and astorage class memory (SCM) controller 118 disposed on the controller108. The second memory device is referred to as an SCM 122. Furthermore,the SCM 122 may replace or supplement any type of memory, such aspersistent memory (PM), phase-change memory (PCM) devices, resistiverandom-access memory (ReRAM) devices, magnetoresistive random-accessmemory (MRAM) devices, ferroelectric random-access memory (F-RAM), DRAM,SRAM, NAND, NOR, etc.

In some examples, the storage device 106 may include additionalcomponents not shown in FIG. 1 for sake of clarity. For example, thestorage device 106 may include a printed circuit board (PCB) to whichcomponents of the storage device 106 are mechanically attached and whichincludes electrically conductive traces that electrically interconnectcomponents of the storage device 106, or the like. In some examples, thephysical dimensions and connector configurations of the storage device106 may conform to one or more standard form factors. Some examplestandard form factors include, but are not limited to, 3.5″ data storagedevice (e.g., an HDD or SSD), 2.5″ data storage device, 1.8″ datastorage device, peripheral component interconnect (PCI), PCI-extended(PCI-X), PCI Express (PCIe) (e.g., PCIe x1, x4, x8, x16,PCIe Mini Card,MiniPCI, etc.). In some examples, the storage device 106 may be directlycoupled (e.g., directly soldered) to a motherboard of the host device104. In one embodiment, the storage device 106 may be a multi-chippackage (MCP) comprising several memory devices and controller chips inthe same package.

The host interface 114 of the storage device 106 may include one or bothof a data bus for exchanging data with the host device 104 and a controlbus for exchanging commands with the host device 104. The host interface114 may operate in accordance with any suitable protocol. For example,the host interface 114 may operate in accordance with one or more of thefollowing protocols: advanced technology attachment (ATA) (e.g.,serial-ATA (SATA) and parallel-ATA (PATA)), Fibre Channel Protocol(FCP), small computer system interface (SCSI), serially attached SCSI(SAS), PCI, and PCIe, non-volatile memory express (NVMe), OpenCAPI,GenZ, Cache Coherent Interface Accelerator (CCIX), Open Channel SSD(OCSSD), or the like. The electrical connection of the host interface114 (e.g., the data bus, the control bus, or both) is electricallyconnected to the controller 108, providing electrical connection betweenthe host device 104 and the controller 108, allowing data to beexchanged between the host device 104 and the controller 108. In someexamples, the electrical connection of the host interface 114 may alsopermit the storage device 106 to receive power from the host device 104.

The storage device 106 includes NVM 110, which may include a pluralityof memory devices. NVM 110 may comprise recording, memory, and/orstorage devices, such as solid-state storage device(s) and/orsemiconductor storage device(s) that are arranged and/or partitionedinto a plurality of addressable media storage locations. As used herein,a media storage location refers to any physical unit of memory (e.g.,any quantity of physical storage media on NVM 110). Memory units mayinclude, but are not limited to: pages, memory divisions, partitions,arrays, planes, blocks, sectors, collections or sets of physical storagelocations (e.g., logical pages, logical blocks), or the like.

NVM 110 may be configured to store and/or retrieve data. For instance, amemory device of NVM 110 may receive data and a message from thecontroller 108 that instructs the memory device to store the data.Similarly, the memory device of NVM 110 may receive a message from thecontroller 108 that instructs the memory device to retrieve data. Insome examples, each of the memory devices may be referred to as a die.

In some examples, each memory device of NVM 110 may include any type ofnon-volatile memory devices, such as flash memory devices and SCMdevices, including PM devices, PCM devices, ReRAM devices, MRAM devices,F-RAM devices, holographic memory devices, and any other type ofnon-volatile memory devices.

NVM 110 may comprise a plurality of flash memory devices. Flash memorydevices may include NAND or NOR based flash memory devices, and maystore data based on a charge contained in a floating gate of atransistor for each flash memory cell. In NAND flash memory devices, theflash memory device may be divided into a plurality of blocks which maydivided into a plurality of pages. Each block of the plurality of blockswithin a particular memory device may include a plurality of NAND cells.Rows of NAND cells may be electrically connected using a word line todefine a page of a plurality of pages. Respective cells in each of theplurality of pages may be electrically connected to respective bitlines. Furthermore, NAND flash memory devices may be 2D or 3D devices,and may be single level cell (SLC), multi-level cell (MLC), triple levelcell (TLC), or quad level cell (QLC).

Storage device 106 also includes volatile memory 112, which may be usedby controller 108 to store information. The volatile memory controller116 may manage or control the read and write operations to the volatilememory 112. Volatile memory 112 may be comprised of one or more volatilememory devices. In some examples, the controller 108 may use volatilememory 112 as a cache. For instance, the volatile memory controller 116may store cached information in volatile memory 112 until cachedinformation is written to NVM 110. Examples of volatile memory 112include, but are not limited to, random-access memory (RAM), dynamicrandom access memory (DRAM), static RAM (SRAM), and synchronous dynamicRAM (SDRAM (e.g., DDR1, DDR2, DDR3, DDR3L, LPDDR3, DDR4, LPDDR4, and thelike)).

The storage device 106 includes a controller 108, which may manage oneor more operations of the storage device 106. For instance, thecontroller 108 may manage the reading of data from and/or the writing ofdata to NVM 110. In some embodiments, when the storage device 106receives a write command from the host device 104, the controller 108may initiate a data storage command to store data to NVM 110 and monitorthe progress of the data storage command. The controller 108 maydetermine at least one operational characteristic of the storage system100 and store the at least one operational characteristic to NVM 110.The controller 108 includes an error correction code (ECC) and errordetection code (EDC) unit 120. The ECC and EDC unit 120 is configured todetect and receive ECC and recovery data, such as XOR data, parity data,codewords, Bose-Chaudhuri-Hocquenghem (BCH) codes, Low Density ParityCheck (LDPC), Cyclical Redundancy Check (CRC), etc. The ECC and EDC unit120 is further configured to rebuild or recovery failed memory blocks ordies using the ECC and recovery data.

The storage device further includes an SCM 122 and an SCM controller 118disposed on the controller 108. The SCM 122 may replace or supplementthe volatile memory 112. For example, the volatile memory 112 may beutilized for write intensive uses while the SCM 122 may be utilize tostorage failure protection data, such as XOR data, parity data, etc. TheSCM 122 may be utilized with volatile or non-volatile memory. The SCMcontroller 118 may manage or controller one or more operations of theSCM 122, such as managing read and write operations to the SCM 122. TheSCM controller 118 of the storage device 106 may include one or both ofa data bus for exchanging data with the controller 108 and a control busfor exchanging commands with the controller 108.

FIG. 2 illustrates an SCM 200 utilized in a storage device, such as thestorage device 106 of FIG. 1, according to one embodiment. The SCM 200may be the SCM 122 of FIG. 1. A storage system (e.g., a cellular phone,a Universal Serial Bus (USB), embedded storage devices, etc.) mayutilize one or more SCMs 200. The SCM 200 may comprise recording,memory, and/or storage devices, such as solid-state storage device(s)and/or semiconductor storage device(s) that are arranged and/orpartitioned into a plurality of addressable media storage locations. Asused herein, a media storage location refers to any physical unit ofmemory (e.g., any quantity of physical storage media on the SCM 200).

The SCM 200 comprises a first package 202 and a second package 204disposed adjacent to the first package 202. The first package 202comprises an even number of memory dies 206 having a first storagecapacity. The first package 202 may comprise may comprise 2^(n) (i.e. apower of two) number of memory dies 206, such as 2, 4, or 8 memory dies206. The second package 204 comprises a set or pair of memory dies208A-208B having a second storage capacity.

The first storage capacity of the memory dies 206 of the first package202 may be greater than the second storage capacity of the memory dies208A-208B of the second package 204. In one embodiment, the firststorage capacity is twice as large as the second storage capacity. Forexample, the memory dies 206 of the first package 202 may have a storagecapacity of 256 Gb while the memory dies 208A-208B of the second package204 may have a storage capacity of 128 Gb. Thus, in one embodiment, thecombined storage capacity of both the memory dies 208A-208B of thesecond package 204 equals the first storage capacity of one memory die206 of the first package 202. The memory dies 208A-208B of the secondpackage 204 may be utilized together to service as a single memory diehaving the first storage capacity. In another embodiment, the firststorage capacity is equal to the second storage capacity. For instance,each memory die 206, 208A-208B in both the first package 202 and thesecond package 204 may have the same storage capacity, such as 256 Gb.

The first package 202 and the second package 204 are coupled to a firstchannel 210 and a second channel 212 parallel to the first channel 210.The first and second channels 210, 212 may be coupled to an SCMcontroller, such as the SCM controller 118 of FIG. 1. Utilizing only twochannels 210, 212 may increase the bus speed of the SCM interface. Thefirst channel 210 and the second channel 212 may comprise one or more ofan open NAND flash interface (ONFI), TM bus, LPDDR3, LPDDR4, DDR2, DDR3,DDR4, or the like.

A first half 214 of the memory dies 206 of the first package 202 and thefirst memory die 208A of the second package 204 are coupled to the firstchannel 210. A second half 216 of the memory dies 206 of the firstpackage 202 and the second memory die 208B of the second package 204 arecoupled to the second channel 212. As such, both the first channel 210and the second channel 210 have the same number of memory dies disposedthereon. As shown in FIG. 2, the second package 204 is disposed belowthe first package 202. However, the second package 204 may be disposedabove the first package 202.

In one embodiment, the first package 202 comprises eight memory dies 206while the second package 204 comprises two memory dies 208A-208B havingone-half the storage capacity of the memory dies 206 of the firstpackage 202. Thus, the eight memory dies 206 of the first package 202combined with the two memory dies 208A-208B of the second package 204results in the same amount of storage capacity as nine memory dies eachhaving the same storage capacity. Utilizing an even number of memorydies 206 in the first package 202 with the second package 204 having twomemory dies 208A-208B with one-half the storage capacity allows eachchannel 210, 212 to have the same amount of memory dies 206, 208A-208B(i.e., the same total amount of storage capacity) to be disposedthereon. As such, storage devices utilizing the storage capacity of anodd number of memory dies with an even number of channels may beconfigured such that each channel is coupled to the same amount ofmemory dies and the same amount of storage capacity.

In one embodiment, only a single memory package having an even number ofmemory dies disposed on each channel is utilized. For example, a USBdevice or an embedded device may comprise one memory package having twochannels with an even number of die disposed on each channel, such ashaving five memory dies disposed on each channel. In such an embodiment,each channel may comprise one memory die having the second storagecapacity while the other memory dies have the first storage capacity.

FIG. 3 illustrates an SCM 300 utilized in a storage device, such as thestorage device 106 of FIG. 1, according to another embodiment. The SCM300 may be the SCM 122 of FIG. 1. The SCM 300 comprises a first package302 and a second package 304 disposed adjacent to the first package 302.The first package 302 comprises an even number of memory dies 306 havinga first storage capacity. The first package 302 may comprise 2^(n) (i.e.a power of two) number of memory dies 306, such as 2, 4, or 8 memorydies 306. The second package 304 comprises a set or pair of memory dies308A-308B having a second storage capacity. As shown in FIG. 3, thesecond package 304 is disposed below the first package 302. However, thesecond package 304 may be disposed above the first package 302.

The first package 302 and the second package 304 are coupled to a firstchannel 310 and a second channel 312 parallel to the first channel 310.The first and second channels 310, 312 may be coupled to an SCMcontroller, such as the SCM controller 118 of FIG. 1. A first half 330of the memory dies 306 of the first package 302 and the first memory die308A of the second package 304 are coupled to the first channel 310. Asecond half 332 of the memory dies 306 of the first package 302 and thesecond memory die 308B of the second package 304 are coupled to thesecond channel 312. Thus, the first channel 310 and the second channel312 each have the same number of memory dies 306, 308A-308B disposedthereon.

The SCM 300 further comprises a third package 318 and a fourth package320 disposed adjacent to the third package 318. The fourth package 320is further disposed adjacent to the second package 304, and the thirdpackage 318 is disposed adjacent to the first package 302. The thirdpackage 318 comprises an even number of memory dies 326 having the firststorage capacity. The third package 318 may comprise 2^(n) (i.e. a powerof two) number of memory dies 326, such as 2, 4, or 8 memory dies 326.In at least one implementation, the first package 302 and the thirdpackage 318 comprise the same number of memory dies 306, 326. The fourthpackage 320 comprises a set or pair of memory dies 328A-328B having thesecond storage capacity. The memory dies 308A-308B of the second package304 and the memory dies 328A-328B of the fourth package 320 may be thesame memory dies 208A-208B of the SCM 200 of FIG. 2. As shown in FIG. 3,the fourth package 320 is disposed below the third package 318. However,the fourth package 320 may be disposed above the third package 318.Moreover, the memory dies 306 of the first package 302 and the memorydies 326 of the third package 318 may be the same memory dies 206 of theSCM 200 of FIG. 2.

The third package 318 and the fourth package 320 are coupled to a thirdchannel 322 and a fourth channel 324 parallel to the third channel 318.The third channel 322 and the fourth channel 324 are disposed parallelto the first channel 310 and the second channel 312. The third andfourth channels 322, 324 may be coupled to an SCM controller, such asthe SCM controller 118 of FIG. 1. Utilizing only four channels 310, 312,322, 324 may increase the bus speed of the SCM interface. A first half334 of the memory dies 326 of the third package 318 and the first memorydie 328A of the fourth package 320 are coupled to the third channel 322.A second half 336 of the memory dies 326 of the third package 318 andthe second memory die 328B of the fourth package 320 are coupled to thefourth channel 324. Thus, the third channel 322 and the fourth channel324 each have the same number of memory dies 326, 328A-328B disposedthereon. The first channel 310, the second channel 312, the thirdchannel 322, and the fourth channel 324 may each have the same number ofmemory dies 306, 308A-308B, 326, 328A-328B disposed thereon.

The first storage capacity of the memory dies 306 of the first package302 and the memory dies 326 of the third package 318 may be greater thanthe second storage capacity of the memory dies 308A-308B of the secondpackage 304 and the memory dies 328A-328B of the fourth package 320. Inone embodiment, the second storage capacity is one-fourth the size ofthe first storage capacity. For example, the memory dies 306 of thefirst package 302 and the memory dies 326 of the third package 318 mayhave a storage capacity of 256 Gb while the memory dies 308A-308B of thesecond package 304 and the memory dies 328A-328B of the fourth package320 may have a storage capacity of 64 Gb. Thus, in one embodiment, thecombined storage capacity of the memory dies 308A-308B of the secondpackage 304 and the memory dies 328A-328B of the fourth package 320equals the first storage capacity of one memory die 306 of the firstpackage 302 or the memory dies 326 of the third package 318. The memorydies 308A-308B, 328A-328B of the second and fourth packages 304, 320 maybe utilized together to service as a single memory die having the firststorage capacity. In another embodiment, the first storage capacity isequal to the second storage capacity.

In one embodiment, the first package 302 and the third package 318 eachcomprise four memory dies 306, 326, respectively, and the memory dies308A-308B, 328A-328B of the second and fourth packages 304, 320 haveone-fourth the storage capacity of the memory dies 306, 326 of the firstand third packages 302, 318. Thus, the eight total memory dies 306, 326of the first and third packages 302, 318 combined with the four totalmemory dies 308A-308B, 328A-328B of the second and fourth packages 304,320 results in the same amount of storage capacity as nine memory dieseach having the same storage capacity. However, by utilizing the memorydies 308A-308B, 328A-328B of the second and fourth packages 304, 320having a storage capacity one-fourth the size of the first storagecapacity of the memory dies 306, 326 of the first and third packages302, each of the four channels 310, 312, 322, 324 have the same amountof memory dies 306, 308A-308B, 326, 328A-328B (i.e., the same totalamount of storage capacity) disposed thereon. As such, storage devicesutilizing the storage capacity of an odd number of memory dies with aneven number of channels may be configured such that each channel iscoupled to the same amount of memory dies and the same amount of storagecapacity.

FIG. 4 illustrates an SCM 400 utilized for failure protection in astorage device, such as the storage device 106 of FIG. 1, according toanother embodiment. The SCM 400 may be the SCM 122 of FIG. 1. The SCM400 is configured like the SCM 200 of FIG. 2. The SCM 400 comprises afirst package 402 having an even number of memory dies 406A-406H eachhaving a first storage capacity. A second package 404 disposed adjacentto the first package 402 comprises a set or pair of memory dies408A-408B each having a second storage capacity. In the embodiment ofFIG. 4, the first storage capacity of the memory dies 406A-406H of thefirst package 402 is twice as large as the second storage capacity ofthe memory dies 408A-408B of the second package 404. For example, thememory dies 406A-406H of the first package 402 may have a storagecapacity of 256 Gb while the memory dies 408A-408B of the second package404 may have a storage capacity of 128 Gb.

The first package 402 and the second package 404 are coupled to a firstchannel 410 and a second channel 412 parallel to the first channel 410.The first and second channels 410, 412 may be coupled to an SCMcontroller, such as the SCM controller 118 of FIG. 1. A first half 414of the memory dies 406A-406D of the first package 402 and the firstmemory die 408A of the second package 404 are coupled to the firstchannel 410. A second half 416 of the memory dies 406E-406H of the firstpackage 402 and the second memory die 408B of the second package 404 arecoupled to the second channel 412.

Each memory die 406A-406H in the first package 402 is configured tostore first data 440A-440H and second data 442A-442H. In one embodiment,the first data 440A-440H and the second data 442A-442H comprise hostdata and/or ECC data. The first memory die 408A of the second package404 is configured to store first recovery data 444 for the first data440A-440H stored in the memory dies 406A-406H of the first package 402.The second memory die 408B of the second package 404 is configured tostore second recovery data 446 for the second data 442A-442H stored inthe memory dies 406A-406H of the first package 402. In one embodiment,the first recovery data 444 store XOR data corresponding to the firstdata 440A-440H, and the second recovery data 446 may store XOR datacorresponding to the second data 442A-442H.

The first data 440A-440H and the second data 442A-442H may include oneor more types of data, such as logging (e.g. logical-to-physicaltables), remapping, ECC, wear leveling, defect growth, etc. The firstdata 440A-440H and the second data 442A-442H may be the same type ofdata. The first recovery data 444 and the second recovery data 446 mayinclude one or more types of recovery data, such as XOR data, paritydata, codewords, BCH, LDPC, etc. However, because the memory dies408A-408B of the second package 404 are half the size of the memory dies406A-406H of the first package 402, recovery data for the memory dies406A-406H of the first package 402 may be divided to be stored in thesecond package 404 such that the recovery data 444, 446 is split betweenthe two memory dies 408A-408B of the second package 404. Furthermore,the first data 440A-440H may be stored on the first memory die 408Awhile the first recovery data 444 may be stored on one of the memorydies 406A-406H, and the second data 442A-442H may be stored on thesecond memory die 408B while the second recovery data 446 may be storedon one of the memory dies 406A-406H.

In one embodiment, the location of the first recovery data 444 and thesecond recovery data 446 is rotated between the memory dies 408A-408B ofthe second package 404 and the memory dies 406A-406H of the firstpackage 402. As described above, the first and second recovery data 444,446 is stored in the memory dies 408A-408B of the second package 404.However, the first and second recovery data 444, 446 may be stored inthe memory die 406A of the first package 402 while the first data 440Aand the second data 442A are stored in the first memory die 408A and thesecond memory die 408B of the second package 404. The first and secondrecovery data 444, 446 may be stored in any of the memory dies 406A-406Hof the first package 402. Thus, storage of the first and second recoverydata 444, 446 may be rotated around each of the memory dies 406A-406H ofthe first package 402 and the memory dies 408A-408B of the secondpackage 404 such that each memory die 406A-406H, 408A-408B stores thefirst and second recovery data 444, 446 an equal number of times,minimizing the endurance amplification factor and reducing latencies.

FIG. 5 illustrates a method 500 of recovering data from a failed memorydie, according to one embodiment. For explanation purposes, FIG. 5 willbe described using the SCM 400 of FIG. 4. Furthermore, in the exampledescribed in method 500 of FIG. 5, the memory die 406B fails, the firstand second data 440A-440H, 442A-442H is stored in the first package 402,and the corresponding recovery data 444, 446 is stored in the secondpackage 404.

To recover or rebuild the failed memory die 406B, the data is read fromeach functioning memory die 406A, 406C-406H, 408A, 408B in the SCM 400.To recover the first data 440B, the storage device reads the first data440A, 440C, 440D from the memory dies 406A, 406C, 406D coupled to thefirst channel 410 in the first package 402 in operation 552. Inoperation 554, the storage device reads the first recovery data 444 fromthe first memory die 408A of the second package 404, which is coupled tothe first channel 410. In operation 556, the storage device reads thefirst data 440E-440H from the memory dies 406E-406H coupled to thesecond channel 412 in the first package 402. Since the second recoverydata 446 stored in the second memory die 408B of the second package 404corresponds to the second data 442B rather than the first data 4408, thesecond memory die 408B is not read to recover the first data 440B.

To then recover or rebuild the second data 442B, the storage devicereads the second data 442A, 442C, 442D from the memory dies 406A, 406C,and 406D coupled to the first channel 410 in the first package 402 inoperation 558. In operation 560, the storage device reads the seconddata 442E-442H from the memory dies 406E-406H coupled to the secondchannel 412 in the first package 402. In operation 562, the storagedevice reads the second recovery data 446 from the second memory die408B of the second package 404, which is coupled to the second channel412. Since the first recovery data 444 stored in the first memory die408A of the second package 404 corresponds to the first data 440B ratherthan the second data 442B, the first memory die 408A is not read torecover the second data 442B.

Once the data stored on the valid memory dies 406A, 406C-406H, 408A,408B has been read, the read data may be transferred to the controllerof the storage device to complete the recovery process of the failedmemory die. While method 500 is described as rebuilding the first data440B prior to rebuilding the second data 442B, the second data 442B maybe rebuilt prior to rebuilding the first data 440B. Utilizing method 500minimizes data recovery or rebuilding times, and further allows forpredictable rebuilding times with optimal die overlapping activity. Assuch, the associated latencies are minimized.

FIG. 6 illustrates a method 600 of recovering data from a failed memorydie, according to another embodiment. For explanation purposes, FIG. 6will be described using the SCM 400 of FIG. 4. Furthermore, in theexample described in method 600 of FIG. 6, the memory die 406B fails,the first and second data 440A-440H, 442A-442H is stored in the firstpackage 402, and the corresponding recovery data 444, 446 is stored inthe second package 404.

To recover or rebuild the failed memory die 406B, the data is read fromeach functioning memory die 406A, 406C-406H, 408A, 408B in the SCM 400.As shown in the SCM 400 of FIG. 4, the first channel 410 and the secondchannel 412 are parallel to one another. To recover the first data 440B,the storage device reads the first data 440A from a first memory die406A disposed on the first channel 410 and the first data 440E from afirst memory die 406E disposed on the second channel 412 in parallel inoperation 602. The first memory die 406A disposed on the first channel410 is adjacent to the first memory die 406E disposed on the secondchannel 412. In operation 604, the storage device reads the first data440C from a third memory die 406C disposed on the first channel 410 andthe first data 440G from a third memory die 406G disposed on the secondchannel 412 in parallel. The third memory die 406C disposed on the firstchannel 410 is adjacent to the third memory die 406G disposed on thesecond channel 412.

In operation 606, the storage device reads the first data 440D from afourth memory die 406D disposed on the first channel 410 and the firstdata 440H from a fourth memory die 406H disposed on the second channel412 in parallel. The fourth memory die 406D disposed on the firstchannel 410 is adjacent to the fourth memory die 406H disposed on thesecond channel 412. In operation 608, the storage device reads the firstrecovery data 444 from a fifth memory die 408A disposed on the firstchannel 410 and the first data 440F from a second memory die 440Fdisposed on the second channel 412 in parallel. While the fifth memorydie 408A disposed on the first channel 410 and the second memory die406F disposed on the second channel 412 are not disposed adjacent to oneanother, the fifth memory die 408A disposed on the first channel 410 andthe second memory die 406F disposed on the second channel 412 aredisposed on parallel channels, and as such, may be read in parallel.

To recover the second data 442B, the storage device reads the seconddata 442A from a first memory die 406A disposed on the first channel 410and the second data 442E from a first memory die 406E disposed on thesecond channel 412 in parallel in operation 610. In operation 612, thestorage device reads the second data 442C from a third memory die 406Cdisposed on the first channel 410 and the second data 442G from a thirdmemory die 406G disposed on the second channel 412 in parallel.

In operation 614, the storage device reads the second data 442D from afourth memory die 406D disposed on the first channel 410 and the seconddata 442H from a fourth memory die 406H disposed on the second channel412 in parallel. In operation 616, the storage device reads the seconddata 442F from the second memory die 406F disposed on the second channel412. In operation 618, the storage device reads the second recovery data446 from the fifth memory die 408B disposed on the second channel 412.

Because the second recovery data 446 corresponding to the second data442B is stored in a memory die 408B disposed on the second channel 412,the second memory die 406F also disposed on the second channel 412 andthe fifth memory die 408B cannot be read in parallel. As such,recovering the second data 442B of the failed memory die 406B may takebetween 15-40 ns longer than the recovery of the first data 440B of thefailed memory die 406B.

Once the data stored on the valid memory dies 406A, 406C-406H, 408A,408B has been read, the read data may be transferred to the controllerof the storage device to complete the recovery process of the failedmemory die. While method 600 is described as rebuilding the first data440B prior to rebuilding the second data 442B, the second data 442B maybe rebuilt prior to rebuilding the first data 440B. Utilizing method 600minimizes data recovery or rebuilding times, and further allows forpredictable rebuilding times with optimal die overlapping activity. Assuch, the associated latencies are minimized.

FIG. 7 illustrates a method 600 of recovering data from a failed memorydie, according to another yet embodiment. For explanation purposes, FIG.7 will be described using the SCM 400 of FIG. 4. Furthermore, in theexample described in method 700 of FIG. 7, the memory die 406B fails,the first and second data 440A-440H, 442A-442H is stored in the firstpackage 402, and the corresponding recovery data 444, 446 is stored inthe second package 404.

To recover or rebuild the failed memory die 406B, the data is read fromeach functioning memory die 406A, 406C-406H, 408A, 408B in the SCM 400.As shown in the SCM 400 of FIG. 4, the first channel 410 and the secondchannel 412 are parallel to one another. To recover the first data 440B,the storage device reads the first data 440A from a first memory die406A disposed on the first channel 410 and the first data 440E from afirst memory die 406E disposed on the second channel 412 in parallel inoperation 702. In operation 704, the storage device reads the first data440C from a third memory die 406C disposed on the first channel 410 andthe first data 440G from a second memory die 440F disposed on the secondchannel 412 in parallel.

In operation 706, the storage device reads the first data 440D from afourth memory die 406D disposed on the first channel 410 and the firstdata 440H from a third memory die 406G disposed on the second channel412 in parallel. In operation 708, the storage device reads the firstrecovery data 444 from a fifth memory die 408A disposed on the firstchannel 410 and the first data 440F from a fourth memory die 406Hdisposed on the second channel 412 in parallel.

To recover the second data 442B, the storage device reads the seconddata 442A from a first memory die 406A disposed on the first channel 410and the second data 442E from a first memory die 406E disposed on thesecond channel 412 in parallel in operation 710. In operation 712, thestorage device reads the second data 442C from a third memory die 406Cdisposed on the first channel 410 and the second data 442G from a secondmemory die 440F disposed on the second channel 412 in parallel.

In operation 714, the storage device reads the second data 442D from afourth memory die 406D disposed on the first channel 410 and the seconddata 442H from a third memory die 406G disposed on the second channel412 in parallel. In operation 716, the storage device reads the seconddata 442F from the fourth memory die 406H disposed on the second channel412. In operation 718, the storage device reads the second recovery data446 from the fifth memory die 408B disposed on the second channel 412.

Because the second recovery data 446 corresponding to the second data442B is stored in a memory die 408B disposed on the second channel 412,the second memory die 406F also disposed on the second channel 412 andthe fifth memory die 408B cannot be read in parallel. As such,recovering the second data 442B of the failed memory die 406B may takebetween 15-40 ns longer than the recovery of the first data 440B of thefailed memory die 406B.

Once the data stored on the valid memory dies 406A, 406C-406H, 408A,408B has been read, the read data may be transferred to the controllerof the storage device to complete the recovery process of the failedmemory die. While method 700 is described as rebuilding the first data440B prior to rebuilding the second data 442B, the second data 442B maybe rebuilt prior to rebuilding the first data 440B. Utilizing method 700minimizes data recovery or rebuilding times, and further allows forpredictable rebuilding times with optimal die overlapping activity. Assuch, the associated latencies are minimized.

Utilizing an SCM having two or four packages with an equal amount ofstorage capacity coupled to each channel improves signal integrity andincreases bus speeds. Such a symmetric SCM layout allows for easierhardware and algorithm handling of the memory dies and channels, assignal integrity is more similar between the two channels, making PCBrouting easier. Furthermore, fewer channels may be utilized, which mayreduce the amount of space required for the memory dies in the storagedevice, allowing for the storage device to have a smaller area and areduced power usage. Additionally, utilizing an SCM comprising memorydies of varying storage capacities enables manufacturing and packagingcosts to be reduced, and allows for the overall read latency ofrebuilding failed memory dies to be minimized.

Additionally, the SCM having two or four packages with an even number ofmemory dies coupled to each channel allows yield fallout to be easilyabsorbed and for improved recovery of data stored within the memorydies. The parallel access of the channels minimizes data recovery orrebuilding times, and further allows for predictable rebuilding timeswith optimal die overlapping activity. As such, failure protection ofdata in storage devices may be improved, as the failed data may bequickly and efficiently rebuilt.

In one embodiment, a storage device comprises a controller, a firstmemory device coupled to the controller, the first memory devicecomprising non-volatile memory, and a second memory device coupled tothe controller. The second memory device comprises a first packagecoupled to a first channel and a second channel parallel to the firstchannel. The first package comprises an even number of memory dieshaving a first storage capacity. The second memory device furthercomprises a second package coupled to the first channel and the secondchannel. The second package comprises two memory dies having a secondstorage capacity less than the first storage capacity. An equal numberof memory dies from the first package having the first storage capacityand an equal number of memory dies from the second package having thesecond storage capacity are disposed on both the first channel and thesecond channel.

The second storage capacity may be one-half the first storage capacity.The first package may comprise two, four, or eight memory dies. Thesecond package may be configured to store recovery data for the firstpackage. The storage device may further comprise a third channeldisposed parallel to the first channel and the second channel, a fourthchannel disposed parallel to the first channel, the second channel, andthe third channel, a third package coupled to the third channel and thefourth channel, the third package comprising an even number of memorydies having the first storage capacity, and a fourth package coupled tothe first channel and the second channel, the fourth package comprisingtwo memory dies having the second storage capacity. An equal number ofmemory dies from the third package having the first storage capacity andan equal number of memory dies from the fourth package having the secondstorage capacity may be disposed on both the third channel and thefourth channel. The second storage capacity may be one-fourth the firststorage capacity. The first package and the third package may eachcomprise the same amount of memory dies.

In another embodiment, a storage device comprises a first controller, afirst memory device coupled to the first controller, the first memorydevice comprising non-volatile memory, and a second memory devicecoupled to the first controller. The second memory device comprises afirst package comprising an even number of first memory dies. A firsthalf of the first memory dies are disposed parallel to a second half ofthe first memory dies. The second memory device further comprises asecond package disposed adjacent to the first package. The secondpackage comprises a set of second memory dies. A first memory die of theset is disposed adjacent to a second memory die of the set. The volatilememory device further comprises a first channel coupled to the firsthalf of the first memory dies of the first package and to the firstmemory die of the set of the second package, and a second channeldisposed parallel to the first channel. The second channel is coupled tothe second half of the first memory dies of the first package and to thesecond memory die of the set of the second package.

The storage device may further comprise a second controller coupled tothe first controller. The first controller may be configured to controlthe first memory device and the second controller may be configured tocontrol the second memory device. The first memory dies may have a firststorage capacity, and the set of second memory dies may have a secondstorage capacity. The second storage capacity may be less than the firststorage capacity. The first storage capacity may be twice the secondstorage capacity. The first memory dies and the second memory dies mayhave the same storage capacity. The first package may comprises two,four, or eight first memory dies.

In another embodiment, a storage device comprises a first memory devicecomprising a first package comprising an even number of first memorydies. A first half of the first memory dies are disposed parallel to asecond half of the first memory dies. The first memory device furthercomprises a second package disposed adjacent to the first package. Thesecond package comprises a set of second memory dies. A first memory dieof the set is disposed adjacent to a second memory die of the set. Thefirst memory device further comprises a first channel coupled to thefirst half of the first memory dies of the first package and to thefirst memory die of the set of the second package, and a second channeldisposed parallel to the first channel. The second channel is coupled tothe second half of the first memory dies of the first package and to thesecond memory die of the set of the second package. The first memorydevice further comprises a third package disposed adjacent to the firstpackage, the third package comprising an even number of third memorydies. A first half of the third memory dies are disposed parallel to asecond half of the third memory dies. The first memory device furthercomprises a fourth package disposed adjacent to the third package andthe second package, the fourth package comprising a set of fourth memorydies. A first memory die of the set is disposed adjacent to a secondmemory die of the set. The first memory device further comprises a thirdchannel disposed parallel to the first channel and the second channel,the third channel coupled to the first half of the third memory dies ofthe third package and to the first memory die of the set of the fourthpackage, and a fourth channel disposed parallel to the third channel,the fourth channel coupled to the second half of third memory dies ofthe third package and to the second memory die of the set of the fourthpackage.

The first package and the third package may comprise the same amount ofmemory dies. The first memory dies may have the same storage capacity asthe third memory dies, and the second memory dies may have the samestorage capacity as the fourth memory dies. The storage capacity of thesecond memory dies and the fourth memory dies may be one-fourth thestorage capacity of the first memory dies and the third memory dies. Thesecond package may be configured to store recovery data for the firstpackage, and the fourth package may be configured to store recovery datafor the fourth package.

The storage device may further comprise a first controller coupled tothe first memory device and a second memory device coupled to the firstcontroller. The second memory device may comprise non-volatile memory.The first controller may be configured to control the second memorydevice. The storage device may further comprise a second controllercoupled to the first controller and to the first memory device. Thesecond controller may be configured to control the first memory device.

While the foregoing is directed to embodiments of the presentdisclosure, other and further embodiments of the disclosure may bedevised without departing from the basic scope thereof, and the scopethereof is determined by the claims that follow.

1. A storage device, comprising: a controller; a first memory devicecoupled to the controller, the first memory device comprisingnon-volatile memory; and a second memory device coupled to thecontroller, the second memory device comprising: a first package coupledto a first channel and to a second channel parallel to the firstchannel, the first package comprising an even number of memory dies eachhaving a first storage capacity; and a second package coupled to thefirst channel and the second channel, the second package comprising twomemory dies each having a second storage capacity less than the firststorage capacity, wherein an equal number of memory dies from the firstpackage having the first storage capacity and an equal number of memorydies from the second package having the second storage capacity aredisposed on both the first channel and the second channel.
 2. Thestorage device of claim 1, wherein the second storage capacity of eachof the two memory dies is one-half the first storage capacity.
 3. Thestorage device of claim 1, wherein the first package comprises two,four, or eight memory dies.
 4. The storage device of claim 1, whereinthe second package is configured to store recovery data for the firstpackage.
 5. The storage device of claim 1, wherein the second memorydevice further comprises: a third channel disposed parallel to the firstchannel and the second channel; a fourth channel disposed parallel tothe first channel, the second channel, and the third channel; a thirdpackage coupled to the third channel and the fourth channel, the thirdpackage comprising an even number of memory dies each having the firststorage capacity; and a fourth package coupled to the first channel andthe second channel, the fourth package comprising two memory dies eachhaving the second storage capacity, wherein an equal number of memorydies from the third package having the first storage capacity and anequal number of memory dies from the fourth package having the secondstorage capacity are disposed on both the third channel and the fourthchannel.
 6. The storage device of claim 5, wherein the second storagecapacity of each of the two memory dies is one-fourth the first storagecapacity.
 7. The storage device of claim 5, wherein the first packageand the third package each comprise the same amount of memory dies.
 8. Astorage device, comprising: a first controller; a first memory devicecoupled to the first controller, the first memory device comprisingnon-volatile memory; and a second memory device coupled to the firstcontroller, the second memory device comprising: a first packagecomprising an even number of first memory dies, wherein a first half ofthe first memory dies are disposed parallel to a second half of thefirst memory dies, and wherein each of the first memory dies have afirst storage capacity; a second package disposed adjacent to the firstpackage, the second package comprising a set of second memory dies,wherein a first memory die of the set of second memory dies is disposedadjacent to a second memory die of the set of second memory dies, andwherein each of the second memory dies have a second storage capacityless than the first storage capacity of the first memory dies; a firstchannel coupled to the first half of the first memory dies of the firstpackage and to the first memory die of the set of the second package;and a second channel disposed parallel to the first channel, the secondchannel coupled to the second half of the first memory dies of the firstpackage and to the second memory die of the set of the second package.9. The storage device of claim 8, further comprising a second controllercoupled to the first controller.
 10. The storage device of claim 9,wherein the first controller is configured to control the first memorydevice and the second controller is configured to control the secondmemory device.
 11. (canceled)
 12. The storage device of claim 8, whereinthe first storage capacity of each of the first memory dies is twice thesecond storage capacity of each of the second memory dies. 13.(canceled)
 14. The storage device of claim 8, wherein the first packagecomprises two, four, or eight first memory dies.
 15. A storage device,comprising: a first memory device, comprising: a first packagecomprising an even number of first memory dies, wherein a first half ofthe first memory dies are disposed parallel to a second half of thefirst memory dies, and wherein each of the first memory dies have afirst storage capacity; a second package disposed adjacent to the firstpackage, the second package comprising a set of second memory dies,wherein a first memory die of the set of second memory dies is disposedadjacent to a second memory die of the set of second memory dies, andwherein each of the second memory dies have a second storage capacityless than the first storage capacity of the first memory dies; a firstchannel coupled to the first half of the first memory dies of the firstpackage and to the first memory die of the set of the second package; asecond channel disposed parallel to the first channel, the secondchannel coupled to the second half of first memory dies of the firstpackage and to the second memory die of the set of the second package; athird package disposed adjacent to the first package, the third packagecomprising an even number of third memory dies, wherein a first half ofthe third memory dies are disposed parallel to a second half of thethird memory dies, and wherein each of the third memory dies have athird storage capacity; a fourth package disposed adjacent to the thirdpackage and the second package, the fourth package comprising a set offourth memory dies, wherein a first memory die of the set of fourthmemory dies is disposed adjacent to a second memory die of the set offourth memory dies, and wherein each of the fourth memory dies have afourth storage capacity less than the third storage capacity less of thethird memory dies; a third channel disposed parallel to the firstchannel and the second channel, the third channel coupled to the firsthalf of the third memory dies of the third package and to the firstmemory die of the set of the fourth package; and a fourth channeldisposed parallel to the third channel, the fourth channel coupled tothe second half of third memory dies of the third package and to thesecond memory die of the set of the fourth package.
 16. The storagedevice of claim 15, wherein the first package and the third packagecomprise the same amount of memory dies.
 17. The storage device of claim15, wherein the first storage capacity of the first memory dies is thesame as the third storage capacity of the third memory dies, and whereinthe second storage capacity of the second memory dies is the same as thefourth storage capacity of the fourth memory dies.
 18. The storagedevice of claim 17, wherein the second storage capacity of each of thesecond memory dies and the fourth storage capacity of each of the fourthmemory dies is one-fourth the first storage capacity of each of thefirst memory dies and the third storage capacity of each of third memorydies.
 19. The storage device of claim 15, wherein the second package isconfigured to store recovery data for the first package, and wherein thefourth package is configured to store recovery data for the thirdpackage.
 20. The storage device of claim 15, further comprising: a firstcontroller coupled to the first memory device; a second memory devicecoupled to the first controller, the second memory device comprisingnon-volatile memory, wherein the first controller is configured tocontrol the second memory device; and a second controller coupled to thefirst controller and to the first memory device, wherein the secondcontroller is configured to control the first memory device.
 21. Thestorage device of claim 8, wherein the second package is configured tostore recovery data for the first package.
 22. The storage device ofclaim 8, wherein the second memory dies of the second package areconfigured to store first data, and wherein a first memory die and asecond memory die of the first memory dies of the first package areconfigured to store recovery data.